<?php

Yii::import('crm.models._base.BaseTelefono');

class Telefono extends BaseTelefono {

//    entidad_tipo: CONTACTO,CUENTA
    const ENTIDAD_CONTACTO = 'CONTACTO';
    const ENTIDAD_CUENTA = 'CUENTA';
//    tipo: CELULAR, CONVENCIONAL TRABAJO, CONVENCIONAL CASA, FAX TRABAJO, FAX CASA
    const TIPO_CELULAR = 'CELULAR';
    const TIPO_CONVENCIONAL_TRABAJO = 'CONVENCIONAL TRABAJO';
    const TIPO_CONVENCIONAL_CASA = 'CONVENCIONAL CASA';
    const TIPO_FAX_TRABAJO = 'FAX TRABAJO';
    const TIPO_FAX_CASA = 'FAX CASA';

    /**
     * @return Telefono
     */
    public static function model($className = __CLASS__) {
        return parent::model($className);
    }

    public static function label($n = 1) {
        return Yii::t('app', 'Teléfono|Teléfonos', $n);
    }

    /**
     * @return array customized attribute labels (name=>label)
     */
    public function attributeLabels() {
        return array(
            'id' => Yii::t('app', 'ID'),
            'numero' => Yii::t('app', 'Número'),
            'principal' => Yii::t('app', 'Principal'),
            'tipo' => Yii::t('app', 'Tipo'),
            'entidad_tipo' => Yii::t('app', 'Entidad Tipo'),
            'entidad_id' => Yii::t('app', 'Entidad'),
        );
    }

    public function search() {
        $criteria = new CDbCriteria;
        $criteria->compare('entidad_tipo', $this->entidad_tipo);
        $criteria->compare('entidad_id', $this->entidad_id);

        return new CActiveDataProvider($this, array(
            'criteria' => $criteria,
            'pagination' => array(
                'pageSize' => 5,
            ),
        ));
    }

    /**
     * Retorna los telefones.
     * @autor Armando Maldonado <amaldonado@tradesystem.com.ec>
     * @param type $entidad_id
     * @param type $entidad_tipo
     * @param type $tipo
     * @return type
     */
    public function getTelefonos($entidad_id = null, $entidad_tipo = null, $tipo = null) {
        $command = Yii::app()->db->createCommand()
                ->select("t.numero")
                ->from("telefono t");
        if ($entidad_id) {
            $command->andWhere('t.entidad_id=:entidad_id', array(
                ':entidad_id' => $entidad_id,
            ));
        }
        if ($entidad_tipo) {
            $command->andWhere('t.entidad_tipo=:entidad_tipo', array(
                ':entidad_tipo' => $entidad_tipo,
            ));
            if ($entidad_tipo == self::ENTIDAD_CONTACTO) {
                $command->order('t.principal DESC');
            }
        }
        if ($tipo) {
            $command->andWhere('t.tipo=:tipo', array(
                ':tipo' => $tipo,
            ));
        }
        return ($command->queryColumn());
    }

    /**
     * @author Miguel Alba <malba@tradesystem.com.ec>
     * @param type $entidad_id
     * @param type $entidad_tipo
     * @return type
     */
    public function getTelefonoContactos($entidad_id, $entidad_tipo, $tipoTelefono) {

        $command = Yii::app()->db->createCommand()
                ->select("numero,principal,tipo")
                ->from("telefono");
        $command->where("(entidad_id = :entidad_id AND entidad_tipo = :entidad_tipo AND tipo=:tipo)", array(
            ':entidad_id' => $entidad_id,
            ':entidad_tipo' => $entidad_tipo,
            ':tipo' => $tipoTelefono
        ));
        $result = $command->queryAll();
        return $result;
    }

}
